]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
panel: Allow restoring maximized/tiled windows by touch
authorFlorian Müllner <fmuellner@gnome.org>
Thu, 24 May 2018 15:28:36 +0000 (17:28 +0200)
committerFlorian Müllner <florian.muellner@gmail.com>
Sat, 14 Jul 2018 18:38:16 +0000 (18:38 +0000)
Maximized and tiled windows can be restored with a drag gesture,
not only from their titlebars, but also from any non-reactive
parts of the top bar above the window. Currently this only works
for actual pointer devices, extend the behavior to handle touch
as well.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/112

js/ui/panel.js

index 8537cb51a400f63b4812c374a618768184f14add..6f3ac9cb362b60942d470dc2935af35cedb3afe6 100644 (file)
@@ -797,6 +797,7 @@ var Panel = new Lang.Class({
         this.actor.connect('get-preferred-height', this._getPreferredHeight.bind(this));
         this.actor.connect('allocate', this._allocate.bind(this));
         this.actor.connect('button-press-event', this._onButtonPress.bind(this));
+        this.actor.connect('touch-event', this._onButtonPress.bind(this));
         this.actor.connect('key-press-event', this._onKeyPress.bind(this));
 
         Main.overview.connect('showing', () => {
@@ -940,8 +941,13 @@ var Panel = new Lang.Class({
         if (event.get_source() != actor)
             return Clutter.EVENT_PROPAGATE;
 
-        let button = event.get_button();
-        if (button != 1)
+        let type = event.type();
+        let isPress = type == Clutter.EventType.BUTTON_PRESS;
+        if (!isPress && type != Clutter.EventType.TOUCH_BEGIN)
+            return Clutter.EVENT_PROPAGATE;
+
+        let button = isPress ? event.get_button() : -1;
+        if (isPress && button != 1)
             return Clutter.EVENT_PROPAGATE;
 
         let focusWindow = global.display.focus_window;